package ar.utn.frgp.banco.service;

import java.util.List;

import ar.utn.frgp.banco.entity.PlazoFijo;
import ar.utn.frgp.banco.exceptions.PersonalisedException;
import ar.utn.frgp.banco.exceptions.ServiceException;

/**
 * 
 * @author PUSDERKIS
 *
 */
public interface PlazoFijoService {
	
	/**
	 * 
	 * @param p el plazo fijo a guardar.
	 * @param dni el dni del cliente.
	 * @return verdadero si se pudo crear.
	 * @throws ServiceException
	 * @throws PersonalisedException
	 */
	void crearPlazoFijo(PlazoFijo p,Long nroCuenta) throws ServiceException,PersonalisedException;
	
	/**
	 * 
	 * @param dni el dni del cliente.
	 * @return un listado con todos los plazos fijos.
	 * @throws ServiceException si hay alg�n error de servicio.
	 * @throws PersonalisedException si ocurre otro tipo de errores.
	 */
	List<PlazoFijo> plazosFijosPorCliente(String dni) throws ServiceException,PersonalisedException;
	
	/**
	 * 
	 * @param p El plazo fijo a actualizar.
	 * @param id el id de plazo fijo.
	 * @throws ServiceException
	 * @throws PersonalisedException
	 */
	void actualizarPlazoFijo(PlazoFijo p,Long id) throws ServiceException,PersonalisedException;
	
	public void crearPlazoFijo(PlazoFijo p)	throws ServiceException, PersonalisedException;
}
